iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 6
3
Google Developers Machine Learning

Machine Learning Day30系列 第 6

[Day06] 深度學習的種類

  • 分享至 

  • xImage
  •  

機器學習下的「深度學習」,
主要是模擬人類的神經元運作,
分為三種DNN、CNN和RNN。

人工智慧、機器學習、深度學習介紹提及,

深度學習又是機器學習的分支,深度學習是人工智慧中,成長最快的領域,深度學習模擬人類神經網絡的運作方式,常見的深度學習架構,如多層感知器(Multilayer Perceptron)、深度神經網路DNN(Deep Neural Network)、卷積神經網路CNN(Convolutional Neural Network)、遞迴神經網路RNN(Recurrent Neural Network)。

深度學習特別應用於視覺辨識、語音識別、自然語言處理、生物醫學等領域,取得非常好的效果。

人腦的重量大約一公斤多,結構非常複雜,預估具有860億個神經元,以及超過100兆條的神經相連,形成的網絡比最先進的超級電腦還要強大。

但是因為人類神經網路太過複雜,為了方便以電腦模擬,將神經元分為多層次,來模擬神經網路。通常會有1個輸入層、1個輸出層、隱藏層可以非常多層,所以稱為深度學習。

單層感知器演變

如Coursa上的課程 ML的簡要歷史:Perceptron,

https://ithelp.ithome.com.tw/upload/images/20190922/201125682eWF2cqWjW.png

就像神經元一樣具有輸入,然後將其乘以權重並加在一起。
將此處的值與「閾值」比較,然後通過函數進行轉換。
例如,如果總和大於或等於零,然後激活或按一個值,否則,請勿激活或按零值。
輸入和權重就像神經元中的神經遞質一樣,其中一些可以是正數並加起來,有些可以是負數,可以從總和中減去。
如果達到閾值,則通過信號,否則,不要傳遞任何東西。
最後,有一個輸出,就像生物神經元一樣,它實際上可以作為輸入傳遞給多層感知器中的其他神經元。

漸漸演變出多層感知器,

https://ithelp.ithome.com.tw/upload/images/20190922/20112568MDOXKebn0N.png

承如3 分鐘搞懂深度學習到底在深什麼提及,

Gradient Descent梯度下降法

在目前主要的深度學習架構裡,人類要擔心的重點只有一個:「Gradient Descent」,中文勉強譯做梯度下降法。我們可以把深度學習想像成有一百萬個學生同時在寫答案,他們每個人都有不同的思考方式,最後每個人都交出一個不同的答案(一個數字)。將所有的答案跟標準答案相減之後(技術上稱為 loss),畫成一條折線圖(或是複雜一點的 3D 圖),離標準答案最接近的那個答案,就會在這張圖的最低點,深度學習的目標就是要找到這個最低點。

最低點代表什麼呢?代表寫出這個答案的學生,擁有最接近正確答案的思考方式,接下來我們讓其他學生向這位學生學習,並繼續測試,是否都能回答正確。理論上,隨著測試次數越多,正確率就會越高,表示這個機器已經通過測試,可以投入實戰分析了。

深度學習越深越好嗎?


從錯誤率(紅字)來看,神經網路疊得越深似乎越好,但可以注意它的架構也不是簡單的堆疊,而是變得很複雜。

堆疊上百層的神經網路,常常會導致「Vanishing Gradient」,也就是因為每一層運算讓數值不斷收斂,導致最後的 output 越來越小,跟正確答案相減之後也就看不到顯著的最小值,看起來到處都是最小值。我們面對的可能不只一百萬個答案,很可能是千萬或上億個答案。

神經網路疊加的越多層,這個問題就會越明顯,因此需要設計不同的架構,跟特殊的運算過程,才能避免找不到最低點。有時候反而 layer 少一點,正確率還更高。

梯度下降調整

如Coursa上的課程「梯度下降」,
A點有一個正斜率,它告訴我們向右尋找最小值。
https://ithelp.ithome.com.tw/upload/images/20190922/20112568hUMr70U3Ya.png

B點有一個正斜率,它告訴我們向左尋找最小值。
https://ithelp.ithome.com.tw/upload/images/20190922/20112568l6sMXwN896.png

圖形顯示調整的步伐:
https://ithelp.ithome.com.tw/upload/images/20190922/20112568niE969XEtm.png

主要可以調整「資料點量」和「模型參數量」:
https://ithelp.ithome.com.tw/upload/images/20190922/201125687NhUpiNckl.png


現階段大多模型,通常應用到三層居多,
以避免overfitting及計算效率的問題,
所謂overfitting就是訓練出來的模型很適合Train Date,
但是對Test Data卻差異很大。


以上,打完收工。


上一篇
[Day05] 機器學習的三個種類
下一篇
[Day07] TensorFlow遊樂場
系列文
Machine Learning Day3026
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言